package com.ysx.controller;

import com.itheima.constant.MessageConstant;
import com.itheima.entity.Result;
import com.itheima.health.pojo.Setmeal;
import com.ysx.service.SetmealService;
import com.ysx.utils.QiNiuUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

@RestController
@RequestMapping("/setmeal")
public class SetmealController {
//    注入serviceimpl实现类对象

    @Autowired
    private SetmealService setmealService;


    /**
     * 向数据库中插入一条数据
     */
    @RequestMapping("/add")
    public Result add(int[] ids, @RequestBody Setmeal setmeal) {
        System.out.println("后端接收的ids对象为：" + Arrays.toString(ids));
        System.out.println("后端接收的对象Setmeal" + setmeal);
//      调用service层方法 返回影响行数
        int add = setmealService.add(ids, setmeal);
        Result result=null;
//        根据结果返回
        if(add>0){
            result=new Result(true,MessageConstant.ADD_SETMEAL_SUCCESS);
        }else {
            result=new Result(false,MessageConstant.ADD_SETMEAL_FAIL);
        }
        return result;
    }



    /**
     * 上传图片 并返回图片域名和名称
     * @param imgFile
     * @return
     */
    @RequestMapping("/upload")
    public Result uploadFile(MultipartFile imgFile) {
        try {
//       接受到的是文件的类型 调用方法获取文件名
            String oldName = imgFile.getOriginalFilename();
//       生成新的文件
            String newFileName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf("."));
            System.out.println("生成的新文件名" + newFileName);
//        将新的文件上传到七牛云
            QiNiuUtils.uploadViaByte(imgFile.getBytes(),newFileName);
//        创建一个Map集合 将生成新文件夹名和七牛云外链域名封装map
            String domain = QiNiuUtils.DOMAIN;
            Map<String, String> map = new HashMap<>();
            map.put("imgName",newFileName);
            map.put("domain",domain);
//            封装Reuslt对象 返回给前端需要的类型

            return new Result(true, MessageConstant.PIC_UPLOAD_SUCCESS,map);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.PIC_UPLOAD_SUCCESS);
        }
    }

}
